The present invention relates generally to methods and apparatus for processing subpicture data of a DVD-video stream, and more particularly, to a novel subpicture processing system which divides subpicture processing functionality between software and a subpicture processing hardware unit.
DVD-video supports up to 32 subpicture streams that overlay the video for subtitles, captions, karaoke lyrics, closed caption lyrics, menus, simple animation, and so on. These are part- to full-screen, run-length encoded bitmaps limited to four pixel values. Each pixel is represented by two bits, allowing four types. The four pixel types are defined as background, pattern (foreground), emphasis-1, and emphasis-2. However, the pixel types are not necessarily tied to the four defined types. Each pixel type is associated with one color from a palette of 16 colors, and one contrast, or transparency level. In many applications, the palette of 16 colors is selected from a 256 color table. However, as one skilled in the art will appreciate, the color table could comprise many more color entries. The contrast or transparency level can be set directly, from invisible (0), through 14 levels of transparency (1-14), to opaque (15).
The display for the subpicture can be any size, up to almost a full screen rectangle. The display area and the content can be changed for each frame or field. Similarly, the color and contrast of the four pixel types can be changed for each frame or field. The subpicture display commands (DCCMDs) are used to change the location, scroll position, transparency, and so on, of the subpicture graphic. A sequence of commands can be used to create effects such as color changes, moving highlights, fades, crawls, etc., on the fly.
With subpicture, pixel parameters quite often must change on a pixel-by-pixel basis in real time. Such performance requires that some kind of hardware acceleration be used to decode the subpicture data stream and present it to the display hardware of the DVD system in real time. However, as one skilled in the art will appreciate, many of the subpicture display commands do not require pixel-by-pixel, real time changes, and thus do not need the hardware acceleration. Unfortunately, all of the prior art DVD systems use subpicture hardware units to perform all subpicture tasks.
The subpicture unit specification is quite complex and has been a well-known headache for hardware developers at almost all companies developing DVD playback systems. Thus, developing subpicture processing functionality that is error free is a very difficult task. If all of the subpicture decode functionality is embedded in an ASIC hardware unit as currently is the case, and an error exists, it can be very expensive to fix the error. In most instances, the hardware unit must be redesigned to fix the bug. This requires new design and manufacturing efforts every time a bug is found.
Since most of the subpicture functionality does not require real time, hardware acceleration, it is preferably to handle the functionality not requiring acceleration in software. That way, if there are errors in the subpicture design, the errors can easily be corrected with code changes, not complex ASIC redesigns. Thus, what is needed is a DVD processing system which includes subpicture functionality being handled by both hardware and software, not just hardware.